iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0
AI & Data

爬蟲怎麼爬 從零開始的爬蟲自學系列 第 15

爬蟲怎麼爬 從零開始的爬蟲自學 DAY15 python迴圈

  • 分享至 

  • xImage
  •  

前言

各位早安,書接上回我們說到條件運算式的用法,今天我們要來介紹程式設計另一個非常重要的工具 迴圈

python迴圈

迴圈是什麼?

迴圈就是當我們需要重複做某些事的時候讓我們不用一行一行重複打
而是利用迴圈的方式實現這個需要
通常迴圈會有設定執行幾次後停止的條件 裡面會放需要重複執行的功能
沒有停止條件的迴圈稱之為無線迴圈 會成為不斷消耗運算資源的病毒

python for迴圈

for 迴圈的基本語法

for 變數 in range(起始值,結束值,遞增值):
(縮排)要重複執行的程式碼

(注意結束值本身不含在內)

簡單範例看出用途 印出1到10
一樣先建立新檔案 loop.py
https://ithelp.ithome.com.tw/upload/images/20210928/20140149FfIiDiZyQS.jpg
相信大家熟到不能再熟了

寫一個簡單印出1到10

使用 for 迴圈前
https://ithelp.ithome.com.tw/upload/images/20210928/20140149CziJuT5y2j.jpg
可以看到一樣的事重複十次有夠麻煩的

使用 for 迴圈後
https://ithelp.ithome.com.tw/upload/images/20210928/201401499GgSPsXZnT.jpg
一樣的功能只要兩行程式碼就完成了
跟原本的十行差距八行
更別說當你需要印一到一百時
這樣理解迴圈的厲害了吧

for 迴圈其他用法

for 迴圈不只可以遞增 他也可以拿出 list 中的元素或是 string(字串) 中的字元
範例如下

list 的 for 迴圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149S3fjZpF98j.jpg
可以看到 for 迴圈會把第一層的元素一個一個抓出來
就算元素是 list 也會按照 list 的格式跟規則呼叫

string 的 for 迴圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149O0scVb2Z4o.jpg
可以看到也是一個字元一個字元抓出來
空格也算一個字元

python while迴圈

for 迴圈有一個變數來決定執行的次數
但是 while 迴圈沒有
while 迴圈是利用布林值的判斷來決定是否終止迴圈
當 while 收到 True 則繼續執行迴圈直到收到 False 才終止迴圈執行
因此當你的條件設定有問題就會使這支程式不斷執行 害你電腦發燙掛掉
所以我們在條件設定上要小心
當你不小心寫出這樣的程式 在終端按下 CTRL+C 就可以強制終止它
https://ithelp.ithome.com.tw/upload/images/20210928/20140149Uy95b0VcTK.jpg
就像這樣即使只有 True 也可以執行
按下 CTRL+C 強制終止它之後會跑出下面的提示
所以正確的寫法是在條件這邊設定一個當我想做的次數完成後會變 False 的條件

while 迴圈的基本語法

while 條件式:
(縮排)要重複執行的程式碼

寫一個簡單印出1到10

寫法如下
https://ithelp.ithome.com.tw/upload/images/20210928/20140149Ha1GTg66QA.jpg
可以看到當 x 變成11時 while 迴圈收到條件式的 False 就停止執行了

python 迴圈 break

break 就是放在迴圈中 一執行到它就結束並跳出迴圈

通常會跟 if else 一起用
用找36跟120最小公倍數來當範例
我們使用 while 迴圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149uTzqv1BxSu.jpg
可以看到我在 while 迴圈設計上是使用了危險的無限迴圈用來測試 break 的功用
我設計的邏輯是一找到36跟120的公倍數時就 break 出來
然後在迴圈外 我加了一個 print("end") 用來確認迴圈結束了

python 迴圈 continue

continue 就是放在迴圈中一旦遇到它就跳過後面程式碼執行下一次迴圈

一樣用找36跟120最小公倍數來當範例
https://ithelp.ithome.com.tw/upload/images/20210928/20140149mDCcXL23fp.jpg
可以看到當 if 條件滿足(還沒找到)
就會跳過下面的 print(x) 跟 break 直接執行下一次迴圈

python 迴圈 else

在迴圈下的 else 就是當迴圈全部執行完後會執行 else 內的程式碼

(前提是迴圈沒有被break)

用印出1到10做示範
這次我們用 for 迴圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149CLbGin2Quy.jpg
可以看到迴圈結束後 執行了 else 內的 print("end")

那被 break 會怎樣呢
https://ithelp.ithome.com.tw/upload/images/20210928/20140149hCjRQAqJDC.jpg
可以看到如果迴圈被 break 結束就不會執行 else 內的 print("end")
當次的10也因為被 break 而沒有印出來

今天我們學會了迴圈跟一些相關語法 又掌握了一個重要技能

到今天為止關於python的基本知識我們都已經學得差不多了

現在已經離能夠實作爬蟲非常近了 明天我們要來簡單講解網頁的架構

接著就要來正式實作爬蟲程式了


早安閒聊區

你知道嗎?

打完疫苗不可以劇烈運動喔

每日二選一

你喜歡跟個性相近還是個性不同的人相處呢


上一篇
爬蟲怎麼爬 從零開始的爬蟲自學 DAY14 python條件運算式
下一篇
爬蟲怎麼爬 從零開始的爬蟲自學 DAY16 html基本介紹
系列文
爬蟲怎麼爬 從零開始的爬蟲自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言